package mlz.d_interface.demo04;

//接口和接口之间的关系: 继承
//类的继承: 单继承
//接口的继承: 多继承
public interface InterfaceC extends InterfaceA,InterfaceB{

    //自己独有的抽象方法 / 默认方法
    void methodAbsC();

    //继承过来的抽象方法
    void methodAbsA();
    void methodAbsB();
    void methodAbsAB();



    //如果是子类直接实现接口中的默认方法,那么默认方法是可以选择性重写
    //接口A和接口B的有相同的默认方法,并且都有不同的实现, 那么就必须重写这个相同的默认方法
    @Override
    default void methodDefaultA() {
        System.out.println("重写后的方法A");;
    }
    @Override
    default void methodDefaultB() {
        System.out.println("重写后的方法B");
    }
    @Override
    default void methodDefaultAB() {
        System.out.println("统一实现默认方法");
    }

    @Override //和父类中方法相同
    default void defaultMethodCC() {
        System.out.println("重写后的方法CC");
    }


//    @Override
//    default void methodAbsA() {
//        //空实现
//    }
//
//    @Override
//    default void methodAbsB() {
//
//    }
//
//    @Override
//    default void methodAbsAB() {
//
//    }
}
